package com.bd.module.salegood.ui;
import javax.swing.JTextField;
import javax.swing.text.*;

/**
 * 此类将使应用程序中的输入框只能输入数字。
 *
 */
public class JNumberOnlyField extends JTextField {
	public JNumberOnlyField(int length){
		super(length);
	}
	
	protected Document createDefaultModel(){
		return new NumberOnlyDocument();
	}
	
	/*
	 * 此方法重写了PlainDocument中的insertString方法。
	 * 重写后使输入的非数字字符进行抛弃处理
	 */
	static class NumberOnlyDocument extends PlainDocument{
		public void insertString(int offs,String str,AttributeSet a) throws BadLocationException{
			if(str == null){
				return;
			}
			char[] upper = str.toCharArray();
			int length = 0;
			for(int i = 0;i < upper.length;i++){
				if(upper[i] >= '0' && upper[i] <= '9'){
					upper[length++] = upper[i];
				}
			}
			super.insertString(offs,new String(upper,0,length),a);
		}
	}
}